#ifndef IM2COL_H
#define IM2COL_H

#include <stddef.h>
#include <stdint.h>


#ifdef __cplusplus
extern "C" {
#endif
void col2im_T(int8_t* data_in, int in_weight_buf,
              int8_t* data_out,int out_height,int out_weight);

void im2col_cpu_T(int8_t* data_im,
        int channels, int height, int width,
        int ksize, int stride, int pad, int8_t* data_col);

void im2col_cpu(int8_t* data_im,
        int channels, int height, int width,
        int ksize, int stride, int pad, int8_t* data_col);
int8_t im2col_get_pixel(int8_t* im, int height, int width, int channels,
    int row, int col, int channel, int pad);

void im2col_cpu_ext(const int8_t* data_im, const int channels,
    const int height, const int width, const int kernel_h, const int kernel_w,
    const int pad_h, const int pad_w,
    const int stride_h, const int stride_w,
    const int dilation_h, const int dilation_w,
    int8_t* data_col);

#ifdef __cplusplus
}
#endif
#endif
